package main

import (
	"demo/micro/etcd"
	"time"
)

func main() {
	//etcd.TestValue()
	//etcd.TestGetPrefix()
	//etcd.TestWatch()

	//etcd.TestLease()

	/**
	etcd  k-v存储的集群，基于raft协议保证数据一致性
	etcdctl get 获取
	etcdctl put 存储
	etcdctl del 删除

	watch 观测某个key，key发生变化时，通知观察者

	lease租约机制：
	创建一个租约，指定租约过期时间  etcdctl lease grant ttl
	存储数据时，可以指定租约。租约过期，key自动删除

	通过租约的keepalive机制，保证自动续约，不过期。 etcdctl lease keep-alive leaseID

	keepalive机制维持客户端跟etcd集群的心跳。当客户端出现问题时，心跳断裂，租约到过期时间后过期
	*/
	etcd.Lease()

	time.Sleep(100 * time.Hour)
}
